home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu463.dms / pu463.adf / DOC.FILES / PP.DOC < prev    next >
Text File  |  1993-01-30  |  24KB  |  539 lines

  1.  
  2. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  3.  
  4.                             Powerpacker Patcher
  5.                                 Version 1.4
  6.  
  7.                      Copyright (C) 1991, Michael Berg
  8.  
  9.                             All Rights Reserved
  10.  
  11.  
  12. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  13.  
  14. INTRODUCTION
  15.  
  16.    Ever  get  tired of having to use PPMore or equivalent to view all those
  17. Powerpacked  datafiles  you  have  scattered  everywhere?   Or maybe PPMore
  18. doesn't  do exactly what you want?  Does your favourite ANIM player support
  19. Powerpacked anim-files?  No?
  20.  
  21.    Well, this program should solve all your problems.  It makes PowerPacker
  22. datafiles  act completely as if they were normal files.  In fact, with this
  23. program  up  and  running,  there  is  not one thing you can do with normal
  24. files,  which you cannot do with Powerpacker datafiles.  Regardless of what
  25. programs you are using.
  26.  
  27.  
  28. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  29.  
  30. RUNNING PP
  31.  
  32.    Powerpacker  Patcher  runs from either the Workbench or the CLI.  If you
  33. use  it  from CLI, you need not RUN it, because it detaches itself from the
  34. current CLI process as soon as it is activated.
  35.  
  36.    If  you  run  PP  "as  is", with no arguments, it will use RAM:  for its
  37. background  file  decrunching.   You  may  supply  PP  with  one  argument,
  38. describing  the  path  it  should  use instead.  You may designate any path
  39. (device  or  directory)  you like, but keep in mind that PP will be writing
  40. and  reading  a  lot in that path, so, if possible, use a fast device (RAM:
  41. or DH0:Temp/DecrunchDir).
  42.  
  43.    It  is  possible  for  you  to  specify  PP's  temporary  path  from the
  44. Workbench, too:  Click (down, up) on PP's icon.  Then press and hold either
  45. SHIFT button, and double-click (2*(down, up)) on the disk or drawer icon to
  46. be  used for background file decrunching.  PP will let you know if you made
  47. a mistake during startup.
  48.  
  49.    Since V1.3, PP has been told to be suspicious towards certain chances in
  50. the  DOS.   DOS  is  usually  the primary target for link-vira, and with PP
  51. running it can be hard for a viruschecker to establish if a virus is active
  52. or  not.   So  PP now does its own, very simple, virus checking.  Read more
  53. about this in the virus section below.
  54.  
  55.    Besides  the  default path, you may give an option to PP, which tells it
  56. NOT  to  do the basic virus checking.  The option may be given to PP either
  57. as a CLI argument like this:
  58.  
  59.     1> PP DH0:Mydir/decrunchtmp -N
  60.  
  61.    or as a "Tooltypes" item in PP's icon, if you use PP from Workbench.
  62.  
  63.    The  '-n'  (Nocheck)  is case insensitive and may appear anywhere on the
  64. command  line.   Further,  another switch has been provided to activate the
  65. virus  checking, even if this is actually the default.  The switch for this
  66. is '-c' (Check).
  67.  
  68.    'Tooltypes' switches look a little different:
  69.  
  70.     CLI argument        Tooltypes equivalent
  71.     --------------------------------------------
  72.     -c or -C        CHECK
  73.     -n or -N        NOCHECK
  74.  
  75.    Switches  are  "permanent".   Running PP again with another option won't
  76. work.
  77.  
  78.    Once  Powerpacker  Patcher  has  hooked  itself  into  AmigaDOS, it will
  79. display a small banner message to show you that everything went all right.
  80.  
  81.    Powerpacker  datafiles will begin to "act" as normal files as soon as PP
  82. has  been activated.  Most programs, commercial and PD, will be fooled into
  83. thinking  that  a  powerpacked  file  isn't  powerpacked at all.  When they
  84. attempt  to  load  such  a  file,  PP will interfere and decrunch it before
  85. passing the file along to the calling program.
  86.  
  87.  
  88. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  89.  
  90. STOPPING PP
  91.  
  92.    Simple!   Just  re-run  PP  and  the  in-memory  version  will terminate
  93. immediately,  if  possible  (see "caveats" below).  DOS will be restored to
  94. its  original  state,  and  Powerpacker  datafiles will again appear as ...
  95. Powerpacker datafiles!
  96.  
  97.    Note:   PP  silently ignores any arguments (CLI or Workbench) if another
  98. PP is already running in memory.
  99.  
  100.  
  101. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  102.  
  103. YOU'LL NEED...
  104.  
  105.    No,  no ARP or anything like that.  I just thought that I should mention
  106. that PP no longer needs 'powerpacker.library', like Pre-1.4 versions did.
  107.  
  108.  
  109. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  110.  
  111. MEMORY NOTICE
  112.  
  113.    If  you  use RAM:  for background file decrunching then, to decrunch any
  114. powerpacked  datafile,  you'll  need an amount of memory equivalent to what
  115. the  file  unpacks to, plus an additional 10k (112k for a file that unpacks
  116. to 102k).  Older versions of PP would temporarily want more than twice this
  117. (one image in memory being written completely out to RAM:  and then freed).
  118. PP  V1.4  uses a highly intelligent "end-to-end fragment" allocation scheme
  119. that  allows  it to free the memory image WHILE the it is being written out
  120. to a file in RAM:
  121.  
  122.    To  keep  it  simple:   With  PP  1.4 you can now load and decrunch much
  123. larger  files  than you could using older versions.
  124.  
  125.    Of  course,  all of this only applies when you use a memory-based device
  126. like  RAM:   for background file decrunching.  For other types of media, it
  127. only  means  that  PP  returns the memory it needs (for decrunching) to the
  128. system faster than pre-1.4 versions.
  129.  
  130.    If  PP  can't  find  the  memory  it  needs  to unpack a file (or if its
  131. temporary  path fills up), it will simply return the original (powerpacked)
  132. datafile  to  the calling program.  This is potentially a bit dangerous, so
  133. in these low-memory situations, you may get some "READ ERROR" messages from
  134. whatever  programs  you  are using.  DON'T dispare - these messages have no
  135. other meaning than to tell you that memory is too low.  Close some windows,
  136. terminate  some programs, delete some files from RAM:, or anything else you
  137. can  think of.  If you get "READ ERROR" messages even if memory is NOT low,
  138. then  it's  time  for  you to conduct a lengthy session with your favourite
  139. disk-editor.  Because then the message is for real.  ;^)
  140.  
  141.  
  142. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  143.  
  144. SAMPLE APPLICATIONS
  145.  
  146.    Well,  what  is  it all good for, then?  Here's a small list just to get
  147. your juices flowing:
  148.  
  149.     o Viewing Powerpacker datafiles (text)
  150.  
  151.       Simply use the TYPE command - or bring the text directly into
  152.       your favourite editor (Memacs, TxEd, CygnusEd, whatever)
  153.  
  154.     o Viewing Powerpacker datafiles (pictures)
  155.  
  156.       Load powerpacked IFF pictures directly into DPaint (or equivalent)
  157.  
  158.     o Icons
  159.  
  160.       Yes, that's right. Go ahead and crunch all those icons. Workbench
  161.       will never know the difference. Remember to retain the names of
  162.       the icons - DON'T use ".info.pp". Workbench recognizes icons
  163.       as files with a postfix of ".info".
  164.  
  165.     o Include files (header files)
  166.  
  167.       Why not go ahead and crunch all your include files for your
  168.       compiler? (believe me, it's worth it!)
  169.  
  170.     o Try to "LIST" a directory containing powerpacked files. Pick one
  171.       out and remember the size of it. Now "LIST" that particular file.
  172.       You will see that the size of your file has seemingly grown. Why?
  173.       The first LIST gives you the actual size of the file. The second
  174.       one gives you the size of the decrunced file...  (this is really
  175.       a side effect in PP, but quite useful in many situations)
  176.  
  177.     o Another side effect. To decrunch a file, simply COPY it from one
  178.       location to another. The target file will be decrunched.
  179.  
  180.     o Much more
  181.  
  182.       There is no end to it. ANY kind of datafile may now be crunched,
  183.       because it will retain its functionality 100% as long as PP is
  184.       up and running. Script files for AmigaDOS, *.config files for
  185.       programs that support config'ing, *.doc files for public domain
  186.       disks, IFF pictures for DPaint, rexx scripts, makefiles, sound
  187.       samples, printer drivers -- YOU NAME IT!
  188.  
  189.  
  190. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  191.  
  192. THEORY OF OPERATION
  193.  
  194.    It's  okay  to  skip this section if you don't care for ugly programming
  195. details...
  196.  
  197.    It's simple, really.  PP juggles with a few DOS library vectors, so that
  198. future  calls  to  certain  DOS  functions are rerouted through PP.  When a
  199. file-open  request  arrives,  PP  looks at the file in question in order to
  200. determine  the  filetype.   If it is a special file (e.g.  CON:  or NIL:) a
  201. filehandle  from  the original DOS Open() function is returned.  Otherwise,
  202. the  file  is  decrunched  to  a memory block, which is then flushed into a
  203. temporary  file  on  the  RAM disk or in whatever directory you supplied PP
  204. with when you started it.  A pointer to this new file is then returned.
  205.  
  206.     PP is, of course, intelligent enough to remove temporary files as these
  207. are  no longer needed.  Otherwise the temporary path would soon get crowded
  208. with  squillions  of useless files.  If PP sees that the temporary file has
  209. been  changed  between  the  Open and the Close call, the file is rewritten
  210. over  the  original  file,  if  possible.   The result is, of course, NOT a
  211. crunched file.
  212.  
  213.    Future attempts to Examine() a powerpacked datafile will return the size
  214. of  the  decrunched  file  in  the  FileInfoBlock,  and not the size of the
  215. Powerpacker datafile itself.  Why?  Imagine an editor trying to load a text
  216. file.  It does an Examine() to get at the filesize.  Then it allocates just
  217. enough  memory  to  hold the file.  It then loads the file into that memory
  218. area.   Well,  that  just  won't  work  if  the  filesize  it receives from
  219. Examine()  is  about 50% too small.  Keep in mind that as soon as an Open()
  220. attempt  is  made,  the file is decrunched, and will thus have a completely
  221. different filesize!
  222.  
  223.    The above is also why some programs may report read errors in low-memory
  224. situations.   Examine()  has  told them that the size of the file was, say,
  225. 100k, and yet they can read only 50k (if the crunch gain was 50%), which is
  226. the  size  of  the crunched file.  This is considered to be a read error by
  227. some programs.
  228.  
  229.    I  have  made  PP  as system friendly as possible with respect to memory
  230. requirements.  The "end-to-end segment" allocation scheme allows PP to free
  231. parts of an allocated memory block, namely the parts it has already written
  232. to  a  file.   This  is  achieved  by  first allocating the entire block of
  233. memory, and then, inside a Forbid()/Permit() pair freeing the memory again.
  234. The  block is then reallocated (using AllocAbs()) in small, consequtive 10k
  235. chunks.  This gives the caller a pointer to a memory block that he can free
  236. in  equally  sized chunks.  I tried Nico's approach, which said that is was
  237. okay to do something like this:
  238.  
  239.     m = AllocMem(1000 bytes)
  240.     FreeMem(m,first 16 bytes)
  241.     m += 16
  242.  
  243.     <use area from m to (m+1000-16)>
  244.  
  245.     FreeMem(m,1000-16 (the rest of the block))
  246.  
  247.    But  that  will  cause tremendous problems ("free twice" meditations) in
  248. low-memory  situations.   (Hope  Nico  is  reading  this, so he can fix his
  249. ppLoadData()!  -Nico, read "fragalloc.c" and "myPPLoadData.c")
  250.  
  251.    For  further  details  on  the  techniques  involved,  please  read  the
  252. sourcecode -- it's included for just that.
  253.  
  254.    You  will  probably  notice  that the program is all in one piece.  I am
  255. profoundly  against  "handlers".   This barbaric dissection of programs can
  256. make  everything much more confusing and your L:  directory a heck of a lot
  257. more  crowded.  Techies will argue, that the reason for splitting your code
  258. in  a startup and a resident (the handler part) module is obvious; this way
  259. only relevant code stays in memory and the startup code terminates at once.
  260.  
  261.    Well, the startup code part is rarely much more than a few K (often much
  262. less),  and  I  myself  gladly sacrifice that small an amount of memory, if
  263. this means that I don't have to copy two files for every executable I have.
  264. Handler  code  is  only for *exceptional* programs, where NO OTHER solution
  265. seems acceptable.
  266.  
  267.  
  268. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  269.  
  270. CAVEATS
  271.  
  272.    Yep,  there are a few of these, too.  First of all, you have to remember
  273. that  PP  is  a  one way street.  This means that loading Powerpacker files
  274. will work fine, but trying to save them again will result in a non-crunched
  275. file.   The powerpacker.library sorely lacks a crunch function.  (Note:  At
  276. this  point,  I'm  not considering Nico's new Powerpacker V4.0b library)
  277.  
  278.    Secondly,  when  working  with  crunched icons (or, for that matter, any
  279. other  type  of  crunched  file),  there is a nominal performance reduction
  280. caused  by  the  decruncher.   Don't expect crunched icons to pop up at the
  281. same  rate  as  they  used to, or crunched include-files to get included as
  282. fast as they used to. In pre-1.4 versions of PP, this effect could be quite
  283. annoying  - especially for diskette based, highly fragmented files.  V1.4 &
  284. later,  however,  use  a much more efficient algorithm.  Use of B.A.D.  and
  285. Addbuffers is still highly recommended, though.
  286.  
  287.    Thirdly,  when  you  want  PP  to terminate, you may get a funny message
  288. back,  saying  that  it  isn't possible to stop the in-memory PP right now.
  289. When  you  get  this message, it is because some other program is currently
  290. using  internal  procedures  in  PP.  Wait until all disk activity has been
  291. completed,  and then try again.  If some faulty program "crashed" before it
  292. could  close  all  its files, or if it simply forgot to close them, you may
  293. not  be able to remove PP at all.  Further, if you are using other programs
  294. that patches the same DOS vectors as PP, you have to terminate these before
  295. PP  can  be  terminated.   If,  for  example,  you have started PP and then
  296. SnoopDOS, you must terminate SnoopDOS before PP can be removed.
  297.  
  298.    PP  will work happily with any machine configuration I can think of.  It
  299. has  been tested on an A500 using AmigaDOS 1.2, with .5Mb extra RAM fitted,
  300. but  has also works happily with AmigaDOS 2.0.  Further, it has been tested
  301. with programs such as "FragIt", "SnoopDOS", "VirusX" and "VirusChecker".  I
  302. don't  have  a MMU, so no Enforcer checks have been made (and I don't think
  303. that it is even possible to test PP with Enforcer).
  304.  
  305.  
  306. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  307.  
  308. PP AND VIRUSCHECKERS
  309.  
  310.    You  do  have a viruschecker, right?  Well, when you are using PP, it is
  311. quite possible that your viruskiller will report that a virus has found its
  312. way into memory.  Don't be alarmed, this is quite normal.  PP works because
  313. of  library  patching,  and  does in fact look a lot like a virus.  PP hogs
  314. these four vectors:
  315.  
  316.                   LVOOpen, LVOClose, LVOExamine, LVOWrite
  317.  
  318.    Right now I can't really think of any approach to make PP transparent to
  319. viruscheckers.   But if at any time PP sees that someone has changed any of
  320. the  above four vectors, it gets suspicious and displays a small message in
  321. a  console  window.   This  message  only  appears once, even if one of the
  322. vectors are changed yet again after that point.  This behaviour is optional
  323. and can be turned off with the NOCHECK/-n flag.
  324.  
  325.    If  PP says that your machine is under attack by a link-virus, don't you
  326. believe  it.  99% of the time it is simply a harmless program that needs to
  327. patch  the  same vectors as PP.  But, unless you know EXACTLY what is going
  328. on,  you should rely more on a virus checker than on your own judgement.  A
  329. link-virus  is  a  very  nasty  and higly intelligent creature, and it WILL
  330. outsmart you in most cases.  So be careful.
  331.  
  332.    PP  is  not  much  of  a  virus checker, agreed, but it does provide the
  333. basics.   Future  releases  may  possibly  contain much more powerful virus
  334. protection  mechanisms, so rest easy.  Get in touch if you have suggestions
  335. on this.
  336.  
  337.  
  338. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  339.  
  340. KNOWN BUGS
  341.  
  342.    Erm..   none,  as  far as I can tell.  However, don't try to remove PP's
  343. temporary directory while it is still running.  If you do, PP will not work
  344. any  longer  (it won't crash your system, though, but it will act just like
  345. it does in low-memory situations -- see "READ ERROR" comment above).
  346.  
  347.    In pre-1.4 versions, the autodetaching was sloppy.  If run from a script
  348. (such  as  your startup-sequence), the EndCli command would refuse to close
  349. the  CLI  window.   Moreover, any messages printed by PP would appear after
  350. the  CLI  prompt, and that's just plain ugly.  However, 1.4 and later fixes
  351. these problems.
  352.  
  353.    And now for the funny parts.  There is a very strange bug lurking around
  354. somewhere  in  the Workbench.  To test this, try the following (you'll need
  355. at least one external drive, or a hard drive):
  356.  
  357.     o Load Workbench
  358.  
  359.     o Start PP
  360.  
  361.     o Insert disks in DF0: and DF1:
  362.  
  363.     o Start any program from DF1: and keep it running. (Doesn't really
  364.       matter what program it is, as long as it runs for some time)
  365.  
  366.     o Eject the disk in DF1: (Step 4 was to prevent WB from removing
  367.       the DF1: icon when you remove the disk)
  368.  
  369.     o Click ONCE on DF0:'s icon
  370.  
  371.     o Press and hold either SHIFT button
  372.  
  373.     o Double-click on DF1:'s icon
  374.  
  375.    BANG! Workbench crashes (GOMF: "Code likely out of control") and summons
  376. the  dreaded  Guru  dude.   I  discovered this peculiarity by accident, and
  377. immediately  thought  that  PP  was at fault.  After hours of fruitless bug
  378. hunting,  I decided to run SnoopDOS while performing the procedure outlined
  379. above  once  again.   Without  PP  running,  of  course.   And  guess what.
  380. Workbench crashed once again.  This can only be because of two things:
  381.  
  382.     Either,
  383.         There's a bug in Workbench
  384.     or
  385.         There is the same bug in PP and in SnoopDOS
  386.  
  387.    There  are  pros  and  cons for both of these.  If you try the procedure
  388. without  anything  funny  running  in  the background (no PP or SnoopDOS or
  389. anything  like  that), Workbench doesn't crash, and does what you expect it
  390. to do.
  391.  
  392.    However,  the  chance  that  exactly  the  same  bug should exist in two
  393. programs  (by  two  different  authors)  is  very  slim.   And  SnoopDOS is
  394. considered  to  be a textbook example of a well-behaved program (PP doesn't
  395. do too bad, either ;^)
  396.  
  397.    Further,  Workbench  2.0  does  not  exhibit  this  behaviour,  so it is
  398. probably the 1.2/1.3 Workbench who's at fault.
  399.  
  400.    For  now,  I'm  going to let the problem rest.  It IS a borderline case,
  401. agreed,  but  it  could  potentially cause problems in other situations and
  402. other  programs.   My  best  guess  is  that WB is making assumptions about
  403. scratch register contents after certain DOS calls.  This is a no-no, as you
  404. well know.
  405.  
  406.    If  you  have any idea what the heck is going on, don't hesitate to mail
  407. me (see address below).
  408.  
  409.  
  410. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  411.  
  412. UNKNOWN BUGS...?
  413.  
  414.    I've  had  reports  from people who can't get PP to cooperate with ARexx
  415. properly.  rexxarplib.library's getfile() has been reported to guru when PP
  416. is  installed.   If  you  have Professional Page you may also run into some
  417. trouble.
  418.  
  419.    It  is  hard  for  me to fix these kinds of problems, because it may not
  420. always  be  PP  who  is  at fault.  Further, I don't even have the software
  421. involved (ARexx, ProfPage, etc), so when these "inexplainable" gurus occur,
  422. just  don't  use  PP for that particular purpose.  At least not until I can
  423. find a way to fix things.
  424.  
  425.    During  version  changes,  it  is quite possible that I "accidently" fix
  426. some  of  the problems, so whenever you receive a new version of PP, try it
  427. out with your software again.  You never know...  8^)
  428.  
  429.  
  430. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  431.  
  432. REMAKING PP
  433.  
  434.    I've  enclosed  a  makefile  suitable  for  Matt  Dillons  "DMake". Just
  435. CD  to PP's home directory, and say "DMake".  That's really all there is to
  436. it.   Oh,  by the way, remember to set CCOPTS to nothing before issuing the
  437. DMake  command  (the  DMakeFile  handles parameters for CC on its own).  PP
  438. will  then be remade using large code, large data & 32 bit integers.  Large
  439. code  & data, because other processes will be executing internal procedures
  440. in  PP, which is virtually impossible using the small memory model.  ( Sure
  441. it's possible, but I'm lazy!  |^) )
  442.  
  443.  
  444. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  445.  
  446. THANKS GO TO...
  447.  
  448.    Well,  who  other  than Nico François.  Nico's powerpacker.library, and,
  449. for  that  matter,  all  the other powerpacker tools, are simply brilliant.
  450. Credit where credit is due!
  451.  
  452.  
  453. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  454.  
  455. FUTURE RELEASES
  456.  
  457.     Version  1.0  of  PP  was  pretty  much  a beta release, and 1.1 didn't
  458. support  all  you 2.0 guys & girls.  This version (1.4), however, should be
  459. free  of  nasty  surprises.  There's still a multitude of possibilities for
  460. improving PP.  Some obvious choises:
  461.  
  462.     ¤ More control on PP. Switching PP temporarily on and off while it
  463.       is running. Possibly through hotkey combinations.
  464.  
  465.     ¤ Option to specify multiple paths for file decrunching, such that
  466.       if one fills up, the next will be used.
  467.  
  468.     ¤ Maybe build in a screen blanking facility or PopCLI style
  469.       hotkeys for starting a new CLI. Will this be useful, or will
  470.       it merely interfere with the real PopCLI? Let me know.
  471.  
  472.     ¤ Improving the virus protection mechanisms
  473.  
  474.     ¤ Patching more DOS functions. DeleteFile() is a good one. This
  475.       would enable to the user to verify the "dangerous" actions of
  476.       a new program (a small autorequester: "ARE YOU SURE (blabla)").
  477.  
  478.     ¤ More on this: Turning PP into a simple virus protector as well.
  479.  
  480.     ¤ Integrating PPLoadSeg and PP, as suggested by Arthur Pÿpers
  481.       (I am opposed to this proposition, however)
  482.  
  483.     ¤ Anything else that YOU would find useful!
  484.  
  485.  
  486.    The  overall  effect of this program is quite astonishing.  I use it all
  487. the  time.   Try  it - it is just fantastic to see how *.pp files act as if
  488. they were completely normal files!
  489.  
  490.  
  491. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  492.  
  493. SHAREWARE
  494.  
  495.    PP  is  shareware.   As  you know, this means that I would like a little
  496. something  if  you  use it frequently.  Something like $5+ (emphasis on the
  497. PLUS) will get you the latest two updates of PP, as soon as these are ready
  498. (more  money  probably  means faster development...).  Please read the file
  499. 'Shareware.ANGER' included in the distribution...
  500.  
  501.  
  502. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  503.  
  504. FLAMES
  505.  
  506.    If you find anything you (dis)like, mail me.  You're gonna have to write
  507. to  me  actually  using old-fashioned ink and paper, because I'm not yet in
  508. the  modem  business.   If you can't remember how to hold a pen, get one of
  509. the tribe elders to show it to you.  Anyway, here's my address:
  510.  
  511.                                Michael Berg
  512.                          Sct. Peders Gade 24A, 2th
  513.                                8900  Randers
  514.                                   DENMARK
  515.  
  516. (I  expect  to purchase a modem shortly, so be prepared for some real havoc
  517. on all those BBS's 8^) )
  518.  
  519.                                  Have fun!
  520.  
  521.  
  522.    Oh,  by  the  way.  I'm no good at drawing icons, and as you may already
  523. have  seen, the icon for PP looks quite terrible.  But how do you represent
  524. a  program  such as PP in a graphical manner?
  525.  
  526.    Please  feel free to contribute any suggestions for what the icon for PP
  527. should  look like.  If I see something I like (data or merely ideas), I may
  528. even use it with future releases of PP.
  529.  
  530.  
  531. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  532.                          __
  533.                         ///
  534.                     __ ///
  535.                     \\X// AMIGA - There Can Be Only One
  536.                      ¯¯¯  ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  537.  
  538. ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
  539.